package com.leejxx.health.dao;

import com.github.pagehelper.Page;
import com.leejxx.health.pojo.Role;
import org.apache.ibatis.annotations.Param;

import java.util.LinkedHashSet;
import java.util.List;

/**
 * @Author LeeJx
 * @ClassName RoleDao
 * @Description TODO
 * @date 2021/1/9 19:44
 * @Version 1.0
 */
public interface RoleDao {
    List<Role> findByUserId(@Param("userId") Integer userId);

    Page<Role> findByPage(@Param("queryString") String queryString);

    void addRole(Role role);

    void insertPermissionIdForRole(@Param("roleId") Integer roleId, @Param("permissionId") Integer permissionId);

    Integer getId(@Param("name") String name);

    void insertMenuIdForRole(@Param("roleId") Integer roleId, @Param("menuId") Integer menuId);

    Role findById(@Param("roleId") Integer roleId);

    List<Integer> findPermissionIdsfromRole(@Param("roleId") Integer roleId);

    List<Integer> findMenuIdsfromRole(@Param("roleId") Integer roleId);

    void editRole(Role role);

    void deletePermissionIdForRole(@Param("roleId") Integer roleId);

    void deleteMenuIdForRole(@Param("roleId") Integer roleId);

    Long findCountOfPermissionByRoleId(@Param("roleId") Integer roleId);

    Long findCountOfMenuByRoleId(@Param("roleId") Integer roleId);

    void deleteRoleByRoleId(@Param("roleId") Integer roleId);

    LinkedHashSet<Role> findAllRoles();
}
